package visao;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.text.MaskFormatter;

import modelo.Estadio;
import modelo.Funcionario;
import modelo.Localizacao;
import controle.Controle;
import controle.ControleEstadio;
import de.javasoft.plaf.synthetica.SyntheticaBlackEyeLookAndFeel;
import de.javasoft.plaf.synthetica.SyntheticaSimple2DLookAndFeel;
/**
 * 
 * @author douglas_joaquim
 */
public class CadastroEstadio extends JFrame {

	private JPanel contentPane;
	private JTextField txtEstadio;
	private JTextField txtRua;
	private JLabel lblBairro;
	private JTextField txtBairro;
	private JLabel lblCidade;
	private JTextField txtCidade;
	private JLabel lblEstado;
	private JButton btnCadastrar;
	private JButton btnBuscar;
	private JButton btnExcluir;
	private JTextField txtlugaresgeral;
	private JTextField txtlugarescamarote;
	
	private Estadio estadio = new Estadio();
	private JTextField txtNumero;
	private JTextField txtCep;
	private JComboBox comboBoxEstado;
	private ControleEstadio controleEstadio = new ControleEstadio(); 
	private Funcionario funcionario;
	private JButton btnCancelar;
	
	/**
	 * tela de aplicaaao 
	 */
	
	protected void abreTela(int status, Funcionario funcionario){
		this.funcionario = funcionario;
		txtBairro.setEditable(false);
		txtCep.setEditable(false);
		txtCidade.setEditable(false);
		txtlugarescamarote.setEditable(false);
		txtlugaresgeral.setEditable(false);
		txtNumero.setEditable(false);
		txtRua.setEditable(false);
		comboBoxEstado.setEnabled(false);
		btnExcluir.setEnabled(false);
		btnCadastrar.setEnabled(false);
		
	
		
		
	}
        /**
         * 
         * @param args metodo main
         */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					UIManager.setLookAndFeel(new SyntheticaSimple2DLookAndFeel());
					CadastroEstadio frame = new CadastroEstadio();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Criaaao do frame.
	 */
	public CadastroEstadio() {
		setTitle("Cadastro de Estadio");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 448);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblEstadio = new JLabel("Estadio");
		lblEstadio.setBounds(10, 32, 79, 14);
		contentPane.add(lblEstadio);
		
		txtEstadio = new JTextField();
		txtEstadio.setBounds(10, 45, 422, 20);
		contentPane.add(txtEstadio);
		txtEstadio.setColumns(10);
		
		JLabel lblRua = new JLabel("Rua");
		lblRua.setBounds(10, 84, 46, 14);
		contentPane.add(lblRua);
		
		txtRua = new JTextField();
		txtRua.setBounds(10, 98, 350, 20);
		contentPane.add(txtRua);
		txtRua.setColumns(10);
		
		lblBairro = new JLabel("Bairro");
		lblBairro.setBounds(10, 135, 79, 14);
		contentPane.add(lblBairro);
		
		txtBairro = new JTextField();
		txtBairro.setBounds(10, 148, 275, 20);
		contentPane.add(txtBairro);
		txtBairro.setColumns(10);
		
		lblCidade = new JLabel("Cidade");
		lblCidade.setBounds(10, 190, 79, 14);
		contentPane.add(lblCidade);
		
		txtCidade = new JTextField();
		txtCidade.setBounds(10, 204, 369, 20);
		contentPane.add(txtCidade);
		txtCidade.setColumns(10);
		
		lblEstado = new JLabel("Estado");
		lblEstado.setBounds(389, 190, 46, 14);
		contentPane.add(lblEstado);
		/**
                 * Botao cadastrar alterar
                 */
		btnCadastrar = new JButton("Cadastrar");
		btnCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Localizacao localizacao = new Localizacao();
				ControleEstadio controleEstadio = new ControleEstadio();
				
				estadio.setNome(txtEstadio.getText());
				localizacao.setCep(txtCep.getText());
				localizacao.setRua(txtRua.getText());
				localizacao.setNumero(txtNumero.getText());
				localizacao.setEstado((String)comboBoxEstado.getSelectedItem());
				localizacao.setCidade(txtCidade.getText());
				localizacao.setBairro(txtBairro.getText());
				estadio.setCadeiraGeral(txtlugaresgeral.getHeight());
				estadio.setCadeirasCamarotes(txtlugarescamarote.getHeight());
				estadio.setLocalizacao(localizacao);
				try {
					
					controleEstadio.salvar(estadio);
					
				} catch (Exception e1) {
					JOptionPane.showMessageDialog(null, "erro" + e1.getMessage());
					//e1.printStackTrace();
				}
				
				Menu menu=new Menu() ;
				menu.abreTela(1, funcionario);
				menu.setVisible(true);
				dispose();
			}
		});
		btnCadastrar.setBounds(113, 367, 91, 23);
		contentPane.add(btnCadastrar);
		/**
                 *Botao Buscar 
                 */
		btnBuscar = new JButton("Buscar");
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				if (btnBuscar.getText().equals("Buscar")){
					
				
				List<Estadio> estadios =new ArrayList<Estadio>();
				
				
				
					estadio.setNome(txtEstadio.getText());
				try {
					estadio = controleEstadio.buscar(estadio).get(0);
					txtEstadio.setText(estadio.getNome());
					txtBairro.setText(estadio.getLocalizacao().getBairro());
					txtCep.setText(estadio.getLocalizacao().getCep());
					txtRua.setText(estadio.getLocalizacao().getRua());
					txtNumero.setText(estadio.getLocalizacao().getNumero());
					for (int i = 0; i < comboBoxEstado.getItemCount(); i++) {
						if(comboBoxEstado.getItemAt(i).equals(estadio.getLocalizacao().getEstado())){
							
							comboBoxEstado.setSelectedIndex(i);
						}
					}
					txtCidade.setText(estadio.getLocalizacao().getCidade());
					txtlugaresgeral.setText(String.valueOf(estadio.getCadeiraGeral()));
					txtlugarescamarote.setText(String.valueOf(estadio.getCadeirasCamarotes()));
					btnBuscar.setText("Editar");
					
					btnExcluir.setEnabled(true);
					
				} catch (Exception e1) {
					 //TODO Auto-generated catch block e1.printStackTrace();
					JOptionPane.showMessageDialog(null, "Estadio nao existe");
					txtBairro.setEditable(true);
					txtCep.setEditable(true);
					txtCidade.setEditable(true);
					txtlugarescamarote.setEditable(true);
					txtlugaresgeral.setEditable(true);
					txtNumero.setEditable(true);
					txtRua.setEditable(true);
					comboBoxEstado.setEnabled(true);
					btnExcluir.setEnabled(false);
					btnCadastrar.setEnabled(true);
					
					btnBuscar.setEnabled(false);
					
				}
				
				
				
				
				}}});
	 	
		btnBuscar.setBounds(10, 367, 91, 23);
		contentPane.add(btnBuscar);
		/**
                 * Botao excluir
                 */
		btnExcluir = new JButton("Excluir");
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				controleEstadio.excluir(estadio);
				Menu menu=new Menu() ;
				menu.abreTela(1, funcionario);
				menu.setVisible(true);
				dispose();
			}
		});
		btnExcluir.setBounds(216, 367, 91, 23);
		contentPane.add(btnExcluir);
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.setBounds(0, 0, 442, 21);
		contentPane.add(menuBar);
		
		JMenu menu_2 = new JMenu("Telas\r\n");
		menuBar.add(menu_2);
		
		JMenuItem menuItem_10 = new JMenuItem("Cliente");
		menu_2.add(menuItem_10);
		
		JMenuItem menuItem_11 = new JMenuItem("Evento");
		menu_2.add(menuItem_11);
		
		JMenuItem menuItem_12 = new JMenuItem("Estadio");
		menu_2.add(menuItem_12);
		
		JMenuItem menuItem_13 = new JMenuItem("Funcion\u00E1rio");
		menu_2.add(menuItem_13);
		
		JMenuItem menuItem_14 = new JMenuItem("Ingresso");
		menu_2.add(menuItem_14);
		
		JLabel lblLugaresGeral = new JLabel("Lugares Geral");
		lblLugaresGeral.setBounds(10, 256, 91, 14);
		contentPane.add(lblLugaresGeral);
		
		txtlugaresgeral = new JTextField();
		txtlugaresgeral.setBounds(10, 269, 86, 20);
		contentPane.add(txtlugaresgeral);
		txtlugaresgeral.setColumns(10);
		
		JLabel lblLugaresCamarote = new JLabel("Lugares Camarote");
		lblLugaresCamarote.setBounds(263, 256, 116, 14);
		contentPane.add(lblLugaresCamarote);
		
		txtlugarescamarote = new JTextField();
		txtlugarescamarote.setBounds(263, 269, 86, 20);
		contentPane.add(txtlugarescamarote);
		txtlugarescamarote.setColumns(10);
		
		comboBoxEstado = new JComboBox();
		comboBoxEstado.setModel(new DefaultComboBoxModel(new String[] {"", "AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR \t", "SC", "SP", "SE", "TO"}));
		comboBoxEstado.setMaximumRowCount(27);
		comboBoxEstado.setBounds(389, 203, 55, 22);
		contentPane.add(comboBoxEstado);
		
		JLabel lblNumero = new JLabel("Numero");
		lblNumero.setBounds(365, 76, 67, 14);
		contentPane.add(lblNumero);
		
		txtNumero = new JTextField();
		txtNumero.setBounds(375, 98, 57, 20);
		contentPane.add(txtNumero);
		txtNumero.setColumns(10);
		
		JLabel lblCep = new JLabel("CEP");
		lblCep.setBounds(306, 129, 46, 14);
		contentPane.add(lblCep);
		
		try {
			txtCep =new JFormattedTextField(
					new MaskFormatter("#####-###"));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		txtCep.setBounds(304, 148, 128, 20);
		contentPane.add(txtCep);
		txtCep.setColumns(10);
		
		btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Menu menu = new Menu();
				menu.abreTela(1, funcionario);
				menu.setVisible(true);
				dispose();
			}
		});
		btnCancelar.setBounds(319, 364, 117, 29);
		contentPane.add(btnCancelar);
	}
}
